//package com.rxyb.wechat.utils;
//
//import com.alibaba.fastjson.JSONObject;
//import com.google.common.base.Preconditions;
//import com.rxyb.toolize.VO;
//import com.rxyb.wechat.utils.bean.TemplateData;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.Optional;
//
///**
// * 推送微信模板消息
// *
// * @coder duyh,@auth duyh
// * @date May 13, 2020
// */
//@Slf4j
//@Service
//public class TemplateClient {
//
//    @Autowired
//    private WechatToolsClient wechatToolsClient;
//
//    /**
//     * 微信消息模板提醒
//     *
//     * @param data
//     * @return
//     */
//    public void send(String accessToken, TemplateData data) {
//        try {
//            Preconditions.checkArgument(VO.isNotBlank(data.getOpenId()));
//            Preconditions.checkArgument(VO.isNotBlank(data.getTemplateId()));
//            Preconditions.checkArgument(VO.isNotBlank(data.getFirst()));
//            Preconditions.checkArgument(VO.isNotBlank(data.getKeyword1()));
//            Preconditions.checkArgument(VO.isNotBlank(data.getKeyword2()));
//        } catch (Exception e) {
//            log.warn("缺少参数，无法推送模板消息：{}", JSONObject.toJSONString(data));
//            return;
//        }
//        JSONObject map = new JSONObject();
//        // 接收者opendid
//        map.put("touser", data.getOpenId());
//        // 模板Id
//        map.put("template_id", data.getTemplateId());
//        if (VO.isNotBlank(data.getAppid()) && VO.isNotBlank(data.getPagepath())) {
//            // 跳小程序所需数据，不需跳小程序可不用传该数据
//            JSONObject jsonApplet = new JSONObject();
//            jsonApplet.put("appid", data.getAppid());
//            jsonApplet.put("pagepath", data.getPagepath());
//            map.put("miniprogram", jsonApplet);
//        } else if (VO.isNotBlank(data.getUrl())) {
//            map.put("url", data.getUrl());
//        }
//
//        // first 数据
//        JSONObject jsonFirst = new JSONObject();
//        jsonFirst.put("value", data.getFirst());
//        // keyword1数据
//        JSONObject keyword1 = new JSONObject();
//        keyword1.put("value", data.getKeyword1());
//        // keyword2 数据
//        JSONObject keyword2 = new JSONObject();
//        keyword2.put("value", data.getKeyword2());
//        // keyword3 数据
//        JSONObject keyword3 = new JSONObject();
//        keyword3.put("value", data.getKeyword3());
//        // keyword3 数据
//        JSONObject keyword4 = new JSONObject();
//        keyword4.put("value", data.getKeyword4());
//        // remark 数据
//        JSONObject remark = new JSONObject();
//        remark.put("value", data.getRemark());
//
//        JSONObject jsonData = new JSONObject();
//        jsonData.put("first", jsonFirst);
//        if (VO.isNotBlank(data.getKeyword1())) {
//            jsonData.put("keyword1", keyword1);
//        }
//        if (VO.isNotBlank(data.getKeyword2())) {
//            jsonData.put("keyword2", keyword2);
//        }
//        if (VO.isNotBlank(data.getKeyword3())) {
//            jsonData.put("keyword3", keyword3);
//        }
//        if (VO.isNotBlank(data.getKeyword4())) {
//            jsonData.put("keyword4", keyword4);
//        }
//        if (VO.isNotBlank(data.getRemark())) {
//            jsonData.put("remark", remark);
//        }
//        map.put("data", jsonData);
//        String templateMessage = map.toJSONString();
//        Optional<String> optional = wechatToolsClient.sendTemplate(accessToken, templateMessage);
//        if (optional.isPresent()) {
//            log.info("推送微信模板消息结果：【{}】==>【{}】", templateMessage, optional.get());
//        } else {
//            log.error("推送微信模板消息异常：【{}】", templateMessage);
//        }
//    }
//}
